package com.tedu.day02.oop;

/**
 * this关键字---super关键字---使用完全一致
 * 不需要继承---当前类，指代当前
 * 使用方法：调取当前类的属性、方法、构造器
 *    this.属性            【当前类的属性赋值】
 *                  范围：出现在构造方法当中
 *                  区别当前类的属性与参数“名称”一致
 *   this.方法
 *   this()      多个有参构造器
 *
 *   总结：this跟super关键字区别？？？
 *      this调用本类的方法、属性、构造器
 *      super调用父类的属性、方法、构造器，存在继承关系
 *      this（）和super（）----传参【赋值】
 *      this（）调取本类的其他构造器--构造器首行
 *      super（）调取父类的其他构造器--子类构造器首行
 *      this（）和super（）可以出现在同一个对象构造器当中吗？  不可以
 */
public class this关键字 {
    int i;//属性---很少赋值【声明未赋值】---构造器或者方法当中赋值
    int j;//属性---很少赋值【声明未赋值】---构造器或者方法当中赋值
    public this关键字(int i, int j) {
        this.i = i;
        this.j = j;
    }
    //有参构造器     需求：创建一个有参对象，给i跟j赋值【跟一样super（）】
 public this关键字(int i) {
        this(3,4);//调用本类其他有参构造器==传参
   this.i = i;//常见：this.属性【当前类下的属性】=参数
        //赋值 this.i=1
    }
    //方法 测试：this.方法
    public void testI(){
        System.out.println("我是I");
    }
    public void testJ() {//调取--输出：我是I  我是J
        this.testI();
        System.out.println("我是J");
    }
    public static void main(String[] args) {
        System.out.println(new this关键字(1).j);        //属性没有输出语句
        //new this关键字(1).testJ();//方法有输出语句

    }
}
